今天本來想進入類別的繼承概念的,但後來發現建構子的學習優先順序應該要高於繼承,所以決定明天再繼續,今天先學好建構子。
建構子(constructor)又稱構造函數,他是一種特殊的函數,定義方式其實和一般的函數類似,但又有不同的地方。這邊介紹一下建構子的基本認識。
1.一般函數會有回傳值,但建構子沒有
2.建構子的名稱必須要與類別名稱相同
3.建構子可省略,即便我們創立物件時沒寫建構子java也會自動呼叫預設的建構子
4.如果建構子被設為private,則此建構子無法在其他類別被呼叫
5.一般函數會在要用到時呼叫才會執行,而建構子會在物件生成時自動呼叫
例如:定義好Circle類別與Circle()建構子(用來設定物件半徑),製造一個show()函數(顯示物件圓半徑與其面積),當c1物件一被創立時構造函數便會直接被自動呼叫執行
class Circle{ //定義Circle類別
.
.
public Circle(doube r){ //定義建構子
radius=r;
}
public void show(){ //一般函數被呼叫才會執行
system.out.println(...);
}
}
再來主程式建立c1物件,Circle()建構子便會立即被呼叫
Circle c1 = new Circle(4.0)
c1.show() //呼叫show()函數
我們都知道了類別內部能定義各種成員,那現在我們如果在類別A中定義一個類別B這種結構便稱為「巢狀類別」,而類別A叫做外部類別,類別B就叫內部類別。
需要注意,若我們平時把寫的Circle類別放進Main類別中,因為我們是在外部類別裡面的main()靜態函數建立內部類別Circle的物件,static靜態函數只能存取static成員,所以在宣告內部類別Circle時必須宣告為static。
public calss Main{
public static void main(String[] args){
.
.
}
static class Circle{ //注意此之間即為內部類別
.
.
} //此之間即為內部類別
}
以上就是對建構子的基本介紹,明天開始進入繼承。